1. Field of the Invention
This present invention relates in general to wireless digital communications. In particular, the invention relates to the synchronization of base and mobile station system clocks in a digital communications system such as a cordless telephone.
2. Background Art
Time Division Duplex (“TDD”) frame structures are popularly used in wireless communications to transfer both receive and transmit signals over a common radio frequency channel. While TDD is used in many applications ranging from satellite systems to cellular telephone systems, it is also commonly employed in digital cordless telephone systems.
A typical digital TDD cordless telephone system might consist of a base station communicating with a handset in full-duplex mode. In such a TDD frame structure, the base station transmits data to the handset in one half of the frame and the handset replies in the other half of the frame. Specifically, as the user speaks into the receiver of the handset, the voice signals are sampled at regular intervals, encoded, compressed and transmitted in periodic bursts of data to the base station during a first portion of each TDD frame. Alternately, the handset receives bursts of data transmitted from the base station during a second portion of each TDD frame that are then decompressed, decoded and converted to an audio signal. Because the base station and handset take turns alternately transmitting and receiving data in bursts over the same channel according to the TDD frame structure, neither the handset nor the base unit receives a steady stream of data, yet the user is normally able to conduct a conversation with a second party with no breaks in the continuity of the audio communications.
To enable this continuous audio to be heard at the telephone receiver, buffers are typically used to smooth out the data bursts. In the handset, the user's compressed voice data can be collected in a First In First Out (FIFO) data buffer. The compressed samples are then emptied from the FIFO, gathered into packets and transmitted in bursts over the air during the transmit portion of the TDD frame. During the receive portion of the TDD frame, a second FIFO buffer is filled with the received data and the compressed samples are then emptied from the buffer and decompressed at regular intervals to produce a continuous audio stream to the user. An analogous operation is performed at the base station.
The operation of these buffers in both the handset and the base station is critical to providing a continuous voice communications link. If the buffers become completely filled before data is emptied and transmitted, or if the buffers empty as data is retrieved for transmission, then audio dropouts and a disruption of the seamless communications link can occur. The rate at which the buffers are filled and emptied is dependent upon the frequencies of the clocks of the base station and the handset. These clocks are often driven by a crystal oscillator (or “crystal”). The two systems each operate from their own independent crystals, and while the crystals are frequency matched in production, the frequencies of operation of the base station and handset crystals will often drift apart over time and with temperature variations. If the base station clock frequency is slightly lower than the handset clock frequency then the handset data buffer will eventually become empty because the rate at which the base unit sends audio data is less than the rate at which the handset pulls data from the buffer for decompression and audio playback. The opposite phenomenon will occur if the handset clock frequency is slightly lower than the base station clock frequency. Both scenarios will likely result in audio dropouts, causing irritation to the users of the communications system. Therefore, critical to the operation of a TDD communications link is the maintenance of equivalent clock frequencies in both the handset and the base station.
One technique that can be used to help maintain synchronization between a base and handset involves the use of bit counters operating in the base station and handset. At the beginning of each frame, the base station transmits a synchronization marker and simultaneously resets a bit counter. The handset upon detecting the synchronization marker also resets a bit counter. The base station and handset bit counters are then incremented each according to its own local clock, and each device relies on its bit counter to determine the timing within a given frame. This technique prevents small differences in the local clock from disrupting the reception of each frame of data by periodically realigning the clocks of the base station and handset.
However, even when such a synchronization marker method is implemented, over many frames of data a difference in local clock frequencies will still likely have a detrimental effect on the FIFO behavior because, while the handset frame is locked to the base station frame via the synchronization marker, the amount of data being pushed into the handset receive FIFO will differ from the amount of data being emptied out of the base station transmit FIFO. This causes the handset receive FIFO to prematurely either fill up or empty depending on whether the base station clock is faster or slower than the handset clock, and will likely over time result in an audio dropout. Thus, the bit counter method alone is not a sufficient solution.
Another technique that can be used to compensate for differing clock frequencies is to over-sample the received data. Oversampling can be employed because the different crystal frequencies act to change the sampling rate of the audio stream. Thus, when the handset and base station crystal frequencies are mismatched, the audio stream arrives at the handset at a different sample frequency than is expected by the handset based on the handset crystal frequency. One solution to this problem is to oversample the incoming audio stream and then resample it to match the local sample frequency. While this prevents breaks in the audio stream at the receiver, the re-sampling process requires significant microprocessor overhead as a large number of calculations are run at a multiple of the audio sampling rate, thus making it an undesirable solution for many applications due to factors such as increased cost, size, part count and/or power consumption.